Here is the description you can find at Freshmeat:
Gujin is a PC boot loader which can analyze your filesystems.
It finds the Linux kernel images available, as well as other bootable
partitions (for *BSD, MS-DOS, Windows, etc.) and files (*.kgz), and displays
a graphical menu for selecting which system to boot.
Because it understands the structure of Linux kernel images, Gujin does not
need LILO nor GRUB and can even load very big kernels.
There is no need to execute anything after making a new kernel: just copy
the kernel image file into the "/boot" directory.
Gujin is written almost entirely in C with GCC, and it fully executes in
real mode to be as compatible as possible.
The documentation (FAQ & HowTo) I try to keep up to date is at
the Document Manager of Sourceforge
Note also the file "install.txt" and the help given by --help/-h option of the
"instboot" and "gzcopy" software included.
./instboot boot.bin boot.exe # for DOS executable ./instboot boot.bin boot.288 --full # For 2.88 Mb floppy image ./instboot boot.bin /dev/fd0 # autodetect the floppy in /dev/fd0Look for more information in the "install.txt" file and/or at "./instboot --help", for instance the --full option for floppies; note also some binary debug versions of file "boot.bin" which can be transformed into dbgdisk.exe, dbgfs.exe...
tiny.exe D:\boot\vmlinuz D:\boot\initrd root=/dev/hda3 <other kernel parameters>or (if you do not have an initial RAM disk to load, note the minus sign):
tiny.exe D:\boot\vmlinuz - root=/dev/hdb5 <other kernel parameters>The <kernel parameters> needs at least a "root=/dev/hd..." parameter, this flavour will not try to probe anything, and return to DOS if an error happens before Linux takes control of the PC.
./instboot tiny.bin /dev/fd0 mcopy vmlinuz-2.4.20 a: mcopy initrd-2.4.20 a: mdir a:And then reboot by Control-Alt-Del or a power cycle. It should load the kernel and the initrd and start Linux.
make proper dep tiny_img ./instboot -f boot.bin /dev/fd0 mcopy vmlinuz-2.4.20-i686 a: mcopy initrd-2.4.20-i686 a: mcopy vmlinuz-2.4.20-i586 a: mcopy initrd-2.4.20-i586 a: mcopy vmlinuz-2.4.20-i386 a: mcopy initrd-2.4.20-i386 a:and the loader will try first the i686 version, then if on a lower processor try the i586 version... if none are loadable it will return to BIOS saying "boot error" and the BIOS shall try to boot another device.
In short, to make all this possible, I wrote a GCC interface to the PC BIOS
and all the library functions needed to easily boot a kernel.
I also wrote a DOS interface to be used if you booted a rescue DOS floppy or
if you choose "return to DOS" in Windows 3.x/9x. This DOS software should work
everywhere but will not be able to start Linux in a Windows DOS box -
you do not want to do that anyways (too many open files not properly closed,
so a scandisk at boot).
I am using a completely re-written GZIP (decompression only) library, 100%
compatible with
GZIP and
zlib
and a small Linux/UNIX "gzcopy" application to edit the comment field of
GZIP files.
The main reason for the rewrite is a smaller program size, it has been
seriously tested (10 CD-ROM full of .tar.gz decompressed and CRC checked),
but if anyone find a problem (else than CDROM not readable or a file
renamed to *.gz after being compressed with another tool) I will be glad
to hear from it.
I am also using a completely re-written E2FS (read only) library, and a
DOS FAT12/16/32 (read only) library to search for and load kernels;
they have been tested extensively (E2FS, E3FS with 1 & 4 Kbytes blocks, lot of
DOS filesystems), no problem has been found.
There is still no NTFS nor CDROM/ISO9660 support.
The system to access the video interface, which can handle in graphic modes
CGA/EGA only, VGA only, VESA1 only and VESA2+ video card is unique to Gujin.
Four types of mouse are detected, for fun you can even have a joystick on
a VT320 when using the serial interface - I have to make a screen shoot
one day!
The size of this bootloader (only one file) is in between 25 and 140 Kbytes,
depending on the compile time options.
Screen shoots are not easy to take in the real BIOS environment, but fortunately DosEmu is here, to give you some idea of what you get, just before switching to graphic (if verbose mode is active):
You should check at least once that this information is correct, you can then uncheck the "verbose" box in the setup screen for a "quick" boot.
Just after switching to graphic, you will see something like this if you have a DOS bootable partition, a Linux distribution, and a Redmond system:
Then, if a mouse/joystick has been detected, you can click to one of the
highlighted fields to either switch to another video mode or boot a kernel,
else you can use the keyboard interface (keys '+', '-','/', '*' ... , and function keys).
Note that those kernels have been found automagically, they are not described
in any "/etc/gujin.conf" this file do not and will never exist.
If you press "space" or the "setup" field (on the top right), you can setup the display and remove some fields:
So you get by re-clicking setup or re-pressing space:
The setup screen has a lot more checkboxes, to search kernel and/or MBR, to search on floppy disks or to BIOS disks or only to IDE...:
You can also change the language used by a compilation option; now only French is available - look at "messages.h" file to help supporting your own language...
At the end (press the end key or click on the button) you get some command, last one being "uninstall" to remove Gujin and restore the old boot process. Here, that option is not enabled because dosemu has booted from a floppy, you need also to enable write to the hard disk to be able to desinstall:
You can also get more unusual video modes, like text mode 40x25:
16 colors video modes in VGA only graphic:
or even 4 colors video modes (2 Bit Per Pixel but in dosemu):
Yes, that is the same software, the same floppy!
By the way, if you do, on a test floppy:
./instboot --full boot.bin /dev/fd0 --serial=com1,9600,n,8,1put this flopppy in the PC to boot, and link the two PCs by a crossed serial line (with or without two modems and a phone line in between), you can type:
The "serial initialisation failed" is due to no answer received whatsoever when interrogating the terminal type - Gujin then assumes a monochrome VT100 terminal. If you have a more powerfull terminal, like a color VT430, or a VT420 which can do 132 columns and 48 lines, be sure to connect it before the identification code is asked (physical terminal autodetection).
You can start minicom and set it to /dev/ttyS0, 9600 baud and get:
Active/clickable fields are underlined, as usual.
Selecting a kernel will really boot it (you will have the console on your serial line) - you will need to setup getty to accept connection on serial line (in /etc/inittab) if you want to connect (see also /etc/securetty).
Have fun!
Last modified 2004-04-07